package com.lg.partition14;

import java.io.*;

/**
 * @author `RKC`
 * @date 2022/4/27 9:05
 */
public class P1341无序字母对 {

    private static final int N = 60;
    private static int[][] g = new int[N][N];
    private static int[] deg = new int[N];
    private static char[] stk = new char[10010];
    private static int m, top = 0;

    private static StreamTokenizer tokenizer = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
    private static PrintWriter writer = new PrintWriter(new OutputStreamWriter(System.out));

    public static void main(String[] args) throws IOException {
        m = nextInt();
        for (int i = 0; i < m; i++) {
            String s = next();
            int u = get(s.charAt(0)), v = get(s.charAt(1));
            g[u][v]++;
            g[v][u]++;
            deg[u]++;
            deg[v]++;
        }
        int cnt = 0, s = -1;
        for (int i = 0; i < N; i++) {
            if ((deg[i] & 1) == 1) {
                cnt++;
                if (s == -1) s = i;
            }
        }
        if (cnt != 0 && cnt != 2) writer.println("No Solution");
        else {
            //找出字典序最小的欧拉回路
            if (s == -1) {
                for (int i = 0; i < N; i++) {
                    if (deg[i] != 0) {
                        s = i;
                        break;
                    }
                }
            }
            dfs(s);
            if (top < m + 1) writer.println("No Solution");
            else {
                for (int i = top; i >= 1; i--) writer.print(stk[i]);
            }
        }
        writer.flush();
    }

    private static void dfs(int u) {
        for (int i = 0; i < N; i++) {
            if (g[u][i] > 0) {
                g[u][i]--;
                g[i][u]--;
                dfs(i);
            }
        }
        stk[++top] = get(u);
    }

    private static char get(int x) {
        if (x >= 0 && x < 26) return (char) ('A' + x);
        return (char) ('a' + (x - 26));
    }

    private static int get(char x) {
        if (x >= 'a' && x <= 'z') x = (char) (x - 32 + 26);
        return x - 'A';
    }

    private static String next() throws IOException {
        tokenizer.nextToken();
        return tokenizer.sval;
    }

    private static int nextInt() throws IOException {
        tokenizer.nextToken();
        return (int) tokenizer.nval;
    }
}
